Skip to main content

Full text of "Boston Computer Society - Sinclair Timex User Group Newsletter"

See other formats


Yr re mn nme 

x BOSTON COMPUTER SOcIBRTY x 

x Newsletter of the BoSTUG (Sinclair/Timex User Group) x 

x Vol 7 Noo ee * 
EDITOR’S HOTES DIRECTORY 

Time Designs Magazine recently Co-director Peter Hale 


had a newsletter competition for 
Sinclair/Timex User Groups. We 
submitted our May issue. Surpris- 
ingly, we did not finish last. 


Nor, did we finish first. 


Said the judges, ".... clean pro- 
duction. Interesting articles ... 
leaning more heavily to the QL. 
This Sinclatr SIG has been around 
since "day one”. It has had some 
ups and downs ...” 


Rarely does a judgee agree with a 
Judge, but we agree entirely. An 

editor with a QL knows others who 
sometimes let us twist their arms 


and our active group is heavily 
into QLs. 
On this page we have sought con- 


tributions from other Sinclairs 
but, with notable exceptions, the 
request has fallen on deaf ears. 
(Past pleas for members to let us 
know what turns them on have been 
lonely cries in the wilderness, 
so we draw your attention to this 
month's centerfold.) 


Wot commented on by the judges, 
but one reason we tied for eighth 
in a field of 22, was a lack of 
any distinguished graphics. 


To correct this deficiency we 
invite you to crank up your crea- 
tive juices and submit designs 
for the following: 


1. A Newsletter cover. (The BCS 
logo is available in paste art.) 


2. A Banner Head (See page top). 


To encourage you to squeeze the 
juices, a year's subscription to 
Time Designs (see review) will be 
the first prize and you will have 
your name immortalized in print. 


BoSTUG Sinclair/Timex Newsletter 


(617) 889-0830 
John Kemeny 
(508) 263-3347 
General Questions John Kemeny 
(508) 263-3347 
John Kemeny 
(508) 263-3347 
Software Librarian Jim Rodlin 
(508) 481-2155 
Al Boehm 
(617) 275-1097 
Peter Hale 
(617) 889-0830 
Peter Hale 
(617) 889-0830 
Flexi-BBS (617) 648-7651 
Sysop: Bob Cutter 646-4425 
THE TIMEWARP(BBS(508) 481-0555 
Sysop: Jim Rodlin 481-2155 
Member Services 
Liason 


Co-dtrector 


Machine Language 


SuperBASIC Guru 


Editor (pra tem) 


QL sub-Group 


Will 
(617) 


Stackman 
547-0655 


The Sinclair/Timex Neweletter is 
the official publication of the 
Sinclair/Timex User Group of the 
Boston Computer Society (BoSTUG). 


Annual membership for New Englanc 
residents is £35.00 ‘otherwise 
$28.00) per year. Subscription 
ta BCS/Update and one other news- 
letter is included without cost. 


The newsletter has an exchange 
policy with Sinclair/Timex User 
groups willing to reciprocate. 


Please forward exchange issues to 
the editor pro tem, Peter Hale, 
P.O. Box 8763, Boston, MA 02114, 


Unless copywritten by the author, 
articles are in the public dom- 
ain. Attribution is requested. 


- 1- September/October 1988 


CONTENTS 


ue] 
“ 
09 
1) 


iditor's Notes 

Jirectory 

YHEN ERROR 

°ston Productivity Tips 
salendar Notes 

snug as a Bug 

snug Conference 

ixchange Newsletters 

"S 2068 Machine Cade-Review 
fagazine Reviews 

sarken Ramdisk 

will Filesaver 

3CS Programming Project 
31NGO 

last Coast Sync Fest 10 
\bout Taolkit II 11 
sOlumnifying Quill 12 


OWODNGUAD®WNNNK RH 


WHEE ERROR 


“he listing in the Atomic Powered 
2L, in the last issue had an 
ror. Line 100 should read: 


.0O IF LEN (u$S<>20 THEN u$=""’: 
GO TO 40 


jestern papers, please copy. 
PSION PRODUCTIVITY TIPS 


n the three years since getting 
1 QL, I continue to be surprised 
.t little secrets it reveals. 


fere is a new one and two aldies 
s30me haven't tumbled to yet. 


\ Qn screen, the number zero (0) 
1aS @ Slash so it looks different 
‘rom the capital letter 0. Most 
winters have a dip switch set- 
‘ing so the zero can be printed 
rithout the slash. Pretty, but 
mce in a while you actually want 
she slash in the zero, as when 
winting a listing from Quill. 


n the bowels of the QL’s charac— 
‘er set is <CTRL><SHIFT> F which 
§& Iike slash zero. QLs and many 
ipson/Seikoshas can print this. 


i In the Psion programs there is 
. screen re-draw key <SHIFT><F5>. 
<creen redrawing rewrites the 
screen. It's useful in Quill if 


30STUG Sinclair/Timex Newsletter 


on-screen text jumps all over the 
place during editing. 


When inserting text in the middle 
of a document, space opens in the 
middle of the screen to let Quill 


give you and it some room. Adda 
character in the middle of text 
and everything after is pushed 


one byte in RAM. Keep this up at 
@& rapid pace and the screen gets 
stressed trying to keep up. At 
the end, text doesn't always 
close up neatly. <SHIFT><F5> is 
Pston's equivalent of Valium. 


§ Speaking of <SHIFT><F5>, not 
everyone knows about <CTRL><F5>, 
which pauses on-screen scrolling. 


In SuperBASIC, without Toolkit Il 


extensions ‘and sometimes with), 
and in programs which send all 
kinds of stuff to the screen but 
have no built-in pause, it can ba 
desirable to pause the program. 


LISTing a program, COPYing a file 


to scr or doing a TORE DiRectory, 
can be frustrating. crolling is 


paused by pressing <CTRL><F5>; to 
continue, press <CTRL><F5> again. 


Actually, any key press continues 


scrolling but CTRL F5 is best. It 
does not register in the buffer 
and consequently is not mistaken 
for a subsequent INKEY$, or its 


equivalent, as a keyed response. 


- Peter Hale 


CALENDAR NOTES 


The Sinclair Timex User Group 
General meeting will be held on 
October 19, 1988, at 7:30 pm at 


the U. Mass Harborside Campus on 
Columbia Point. The room is 063 
Wheatly Building. 


The QL sub-group next meets on 
December 5 at John Mitchell's in 

Westwood. As this is a private 
home, please call John at (617) 

326-5420 so he can tell you how 
to get there. 

For other information contact 
Peter Hale or John Kemeny. 


Sues September/Octaber 1988 


‘, —_—— 
ena =o 


SHUG AS A BUG \__~— 


On cold evenings of my childhood 
my grandmother would wrap me in a 


handwoven blanket and settle in 
front of the fire to read mea 
story. But before the story she 
would always say, " and there you 


are, snug as a bug in ae rug." 
The sense of being protected has 
lasted with me to this day every 
time 1 hear the word ‘snug’. 


In 1988 SHUG is 
Sinclair 
Group. 


the acronym for 

North American Users 
It's objective is to sup- 
port all Sinclairs across this 
vast continent, maintain PD and 
shareware software libraries, act 
as a referal service, publish 
newsletters and generally promote 
Sinclair computers. It is to com- 
plement, not compete with, local 
user groups. 


All worthy goals. Realistic? 
Who's to say? Some wet blankets 
have editorially mused that it is 
a bug ina rug, because af ill- 
defined organization, nalve econ- 

omics and avoidance of reality. 


Yet, for all the talk of the Sin- 
clair being ‘dead’, consider: — 


1. Hardware peripherals for the 
T/S 1000 continue to come to mar- 
ket and survive. 


<e. The Larken disk controller 
for the T/S 2068 tis a technical 
and financial success. 


3. Time Designs Magazine turns a 
profit. 


4. Sinclair computers are virtu- 
ally the only ones that permit 
novice hackers to understand the 
inner workings. Somewhere, there 
have to be training grounds to 
get hands-on, basic understanding 
of machine cade. 


not dead nor will 
they die. Like old soldiers they 
will fade away, but in the mean- 
time thousands of Sinclair owners 
power up and get productive use, 
vast entertainment and much sat- 


Sinclairs are 


BoSTUG Stinclair/Timex Newsletter 


APPLICATIONS SOFTWARS for the QL 
fron EMSOFT 


MAILBAG An address database you 
won't believe. Labels, 
Rotary index cards, zip 
sorting, Tickler filing, 
3 column printout, many 
automatic features and 
much more 256K+ 
TAX-I-QL Spreadsheet for IRS tax 


returns 384K+ 


QLAHD LORD Manage up to 99 units 
and do Schedule E. 


(Soon) S56K+ 
TRUST_FUND Track investments an 
net worth. Retain cost 


basis (Soon) 256K+ 


$19.95 ea ppd on 5 1/4" DSQD 
(+$2.00 on microcartridge) 


BMSOFT 
P.O. Box 8763, Boston, MA 02114 
(617) 389-0830 


isfaction from their computers. 


The arguement for SNUG is that 1: 
smaller groups disband, there can 
be a vehicle for continuing sup- 
port and assistance to new users: 
as they come into the fold. New 
Users? Yes, daily new people are 
turned on to Sinclairs and there 
is no media attention to connect 
these people to the experienced. 


Mel Nathanson, 7515 Arbordale [r. 
Port Richey, FL 34668 is collect- 
ing names and addresses of thos: 
who are interested in the concept 
and/or want more info. His phone 
is (813) 863-5552. 


Drop him a postcard. At wors: 
you're out 15¢ (17¢ if you watt?) 


- Peter Hale 


= 30> Septemsber/October 1988 


SHUG CONFERENCH ; 
(Minutes of the SNUG ‘Sinclair 
North American User Group? con- 
ference of 8/17/88 on Compuserve) 


We met on the Timex section of 
Compuserve on Wednesday, August 
17 at 9pm to discuss SNUG. Among 
the 13 active participants were: 
-Mel Nathanson (Chairman pro-tem 
of SNUG), Gary Lessenberry ‘of 
CATUG), Paul Holmgren (CISTUG), 
Sysop Dave Rothman (Compuserve), 
Jim Rodlin (the Boston Computer 
Society), Greg Popovich ‘of LIST) 
and several others. 


The meeting was active, and many 
interesting ideas were proposed. 
There were two primary topics: 

A) The SWUG Newsletter, and 

B) The SHUG Public Domain Library 


At the beginning of the discus- 
sion, since we were all confirmed 

modem users, it was suggested 
that a BBS be the central point 
for SHUG. But it was acknowledged 
that many users either cannot or 
will not use their modems (for 
whatever reason). So even as the 

idea to disseminate the newslet- 
ter from a BBS was proposed, it 
was eliminated. It was decided 
that any newsletter would HAVE to 
be in hard-copy format. It was 
also felt that SNUG should 
definitely have its own separate 
newsletter rather than depend on 
other publication(s). This would 

give a stronger sense of identity 
on the part of the membership. 


As far as the Public Domain 
Library went, consensus was more 


aifficult to reach. In the 
beginning, once-again, it was 
proposed that the library should 
be up for downloading. But this 
was eliminated, largely for the 
same reasons as’ the newsletter. 
Then, it was proposed that we 


confine it strictly to tape media 
since everyone can read tape. But 
the objection was raised that 
this would consttute a very big 
demand on the time at the 
Librarian. It was then suggested 
that the disk formats should also 


BoSTUG Sitnclair/Timex Newsletter 


The mechanics of 
such a system were discussed for 
some time, the most prominent 
idea being to have "“Sub-Libr- 


arians"” to handle the various 
specific formats. But no firm 
conclusion was reached. 


be supported. 


The idea of setting up an 
Echomail system based on Fidonet 
was obriefly discussed. Two T/S 
BESes are currently based on 
Fidonet nodes with a third to be 
added soon. The current ones are 
the Passaic BBS (node 107/559) 

and the Bus Depot (node 112/4). 

There seemed to be some enthu- 
siasm for the idea. 


The last item of business was 
that we agreed to meet again on 
Compuserve on Wednesday, August 
31st at 9:00pm EDT. 


- Pete Fischer 
(Phoenix Pete’) 


We found a small supply of 2X 
Spectums and ZX Interface 1's 
in their original cartons. 


They won't last at these prices? 


ZX Spectrum with 240v FS 
(or use TS 2068 PS) $40.00 


Zi Interface 1 $30.00 


(plus $5.00 sth ea) 


Visa/Master Card accepted 


ask for Neal. 


And ask about our prices on 
wide carriage, daisy wheel 
QUME serial printers 


ELI HEFFROH & Sons inc. 
Computer Equipment & Peripherals 


139-145 Hampshire St. 
Cambridge, MA 02139 


1-800-892-9230 1-617-547-4005 


September /Uctober 1988 


EXCHANGE HEWSLETTERS 


Since renewing our publication 
schedule in January, BoSTUG gets 
exchange newsletters from many 


groups across the continent. 


newsletters are available to 
at the bi-monthly meet- 
When someone figures out 
keep track of loan-outa, 
will be available for take— 
Suggestions! 


The 
nembers 
ings. 
how to 
they 
out and matilout. 


The 
from 


Quality 
most reliable is 
Lemoyne, PA, with whom we tied 
for eighth place in the Time 
Designs Magazine contest in May. 


and quantity vary. 
the HATS 


Vernon Smith whoa edits the 
Washington, DC, CATS newsletter 
puts out the meatiest and most 
professional newsletter. It won 
second place in the TDM contest 
and was the top newsletter pro- 


duced on a Sinclair computer. 


This editor is pleased that some 
of what we publish is of interest 
to others. The Chicago area 
Wite-Tines News copied Mike 
Mitchell's article and listing, 
“Telecommunications on the QL". 


What was most interesting is that 
they got it from the Phoenix, AZ, 
based Q2X which specializes in 
Sinclair Telecommunications. 


We don't even exchange with then, 
yet! They got it from the group 
in Dallas. By the time it got 
back to us, a POKE had been added 
and a line changed. Congratula-~ 
tions, Mike! 


We have also uncovered in the BCS 
archives exchange newsletters 
from 1983/1984, the heyday of 
Sinclair computing. 


We really 
Newsletter 


need a Coordinator of 
Exchange to summarize 
the best for inclusion in this 
newsletter. It has gotten beyond 
the abilities of the editor to 
keep up. Volunteers, PLEASE! 


- Peter Hale 


BaSTUG Sinclair/Timex Hewsletter 


TS 2068 MACHINE CODE 
A Book Review 


Introduction to 2068 Machine Code 
by Dr. Lloyd Dreger & Advanced 


2068 Machine Cade by Dr. Lioyd 
Dreger / S.M.U.G. 


{A note to readers: The differ- 
ences between "assembly language" 
and "machine language’ are subtle 
and unimportant in this review. 
For the purposes of this article, 
the two terms may be considered 


equivalent.) 


There are many good books’ that 
teach BASIC programming for 
beginning and advanced T/S 2068 
programmers. However, the 2008 


programmer interested in assembly 


language programming is faced 
with a shortage of information. 
Although there is no shortage of 
books on Z-80 assembly language, 
none of them cover the T/S 2068 
and its operating system. An 


exception is the T/S 2068 Tech- 


nical Manual, but that book was 
never intended to be a tutorial. 


Dr. Lloyd Dreger, of the Sinclair 

Milwaukee Users Group, saw this 
problem and decided to do some- 
thing about it. The result is 


two books. The first, a 213 page 
manual called Introduction to 


2068 Machine Code, covers nearly 

every as t of machine language 
on the 2068, including a tutorial 

on the basic concepts behind 
machine language programming. It 
was written with the assumption 
that the reader knows BASIC, but 
not necessarily machine code. 
However, those who already know 
eomething of Z-80 machine code 


will benefit just as much as the 
beginning student. The manual 
goes to the heart of the 2068, 


explaining the BASIC interpreter, 
the 2068 memory map, video modes 


& screen addressing, the system 
variables, and sound. 


Armed with a thorough = under- 
standing of the inner workings of 


the 2068 and the basic concepts 
(Cont page |Q) 
- § - September/October 1988 


MAGAZINE REVIEWS 


Orphan computers are lonely and 
have communication problems. It 
is not enough to be loved. 


If that orphan is a Sinclair, the 
other problem is magazine costs. 
Sinclair users operate on tight 
budgets and UK subscriptions also 
take forever to arrive.) 


Six vital magazines are published 
in Worth America-land and maybe 
you don't know about them yet. 


The grand daddy and guru of them 
all is Time Designs Magazine. Its 
4000+ subscribers might also call 
it The Journal of Record of North 
American Timex/Sinclair Computing 


TDM has goodies for each Sinclair 
model and clone. It also has the 
best (excellent) graphics. 


Regular contributers include such 
luminaries as Fred Nachbaur, Stan 
Lemke, Paul Bingham, Mike de Sosa 
and others. 


Each issue always has columns and 
programs for all three classes of 
Sinclairs, but its other value is 

that it is where everyone adver— 
tises - hardware, software, etc. 


The May/June (Vol 4,No0 4 - $3.00) 
issue lists 55 user groups and 94 
companies that support Sinclairs. 


Three magazines support TS 2068's 
(and Spectrum). 


The most unusual is Byte Power on 
cassette - no typing listings — 
and mostly in machine code. It's 
bi-monthly on a flexible schedule 
put the software is extemely well 
written and often unique. 


Back issues and software reprints 
are available. 


UP-DATE Computer Systems comes 
quarterly. It is one third list— 
ings and supports every 2068 disk 
controller in each 50 page issue. 
It has excellent reviews and a 
sense of humor. Now supports QL. 


BoSTUG Sinclair/Timex Newsletter 


“contacts. 


The SyncWare Group publishes two 
bi-monthlies for the Sinclair and 


both are internationally reknown. 


SyncWare Hews has been in print 
Since 1983. It's for ZX-60 thru 


TS-2068 computers. 
Quantum Levels is just for QLs. 


Both are 16 page bi-monthlies for 
anyone who explores a Sinclair's 
full potential. No one who enjoys 
hacking should be without which- 
ever one applies. Beginners may 
sometimes feel overwhelmed, but 


there is something for everyone. 


AS much as anyone, Syncware Group 
has its ear to the ground for the 
latest scoop and poop in the T/S 
community. It has good overseas 
The worst that can be 
noted is the (temporary) lag from 
editing to production and dearth 
of graphics. 


Finally, do not overlook Conmputer 


Shopper, a hardy habitue of conm- 
puter flea markets. There is an 
orphan column and much classified 


activity directed to Sinclairs. 


The Bottom Line: You get change 
out of a twenty dollar bill for 
a year of most magazines. 


Byte Power, 1748 Meadowview Ave., 
Pickering, ONT, CANADA L1V 3G8. 
US$32.00 for 6 issues. ($2.00 for 
Catalogue/Demo tape, a must buy?) 


Computer Shopper, P.O. Box F, 
Titusville, FL 32781. $2.95 at 
computer stores; by subscription, 
monthly. (Various special deals? 


SyncWare Group, 602 S. Mill St., 
Louisville, OH 44041. $18.9/yr, 
bi-monthly, for SyncWare News or 
Quantum Levels. (Sample $2.00) 


Time Designs Magazine, 29722 Hult 
Road, Colton, OR 97017. $16.95/yr 


bi-monthly. (Also get May-June do 
User Group issue for $3.00) 


UF-DATE, 1317 Stratford Avenue, 
Fanama City, FL 32404. $15.00/yr, 
quarterly. 


= 65> September/Octaober 1988 


LARKEN RAMDISK for T/S 2068 


A Review 


I recently received an order from 
Larken Electronics with Ramdisk 
on a medium-sized (3x7) circuit 
card and a replacement EPROM chip 
for the LKDOS disk controller 
cartridge. 


The chip is an updated version of 
the disk operating system so that 
LKDOS can support the ramdisk. 


The Ramdisk board has a feed-thru 
connector that plugs into the 
rear expansion buss of the 2068, 
and 4 empty sockets on the back- 
side of the card. These sackets 
hold the ramchips, which must be 
vought separately. At one edge 
of the ramdisk board is a battery 
clip to hold two "AAA" batteries. 

Vith batteries installed, the 

contents of the ramdisk are pres- 
erved when the 2068 ts turned off 
or Ramdisk is unplugged. 


The LKDOS Ramdisk accepts up to 
four 32K ram chips without modifi- 
cation for up to 128K of storage. 
The board uses 32 x 8K static ram 
chips (part no 43256L or 62256L). 
To install memory beyond 128K, 
four more empty sockets must be 
soldered ‘piggyback’ to the first 
four ram chips, but this is rela- 
tively simple for anyone who has 
used a soldering tron. 


Once installed, the ram is ‘form- 
atted’ with a single command from 
basic and ready for use. 


The Ramdisk behaves exactly like 
an ordinary disk drive in LKDOS, 
only a lot faster. The same com- 
mands are used; only where ordin- 
ary drives are numbered Zero to 
Three, the Ramdisk is drive Four. 

PRINT #4: CAT '"* instantly res- 

ponds with a catalog of the files 
under a heading "Disk drive name: 

RAMDISK". I could even change the 

Ramdisk drive name with Larry 
Kenny's recently released disk 

editor utility. 


saved to 
2068 on 


AUTOSTART files can be 
the Ramdisk. Turn the 


BoSTUG Stnclair/Timex Newsletter 


while pressing ENTER and the "J" 
key Simultaneously will boot the 
AUTOSTART file from ramdisk in- 
stead of the regular disk drive. 


Screen images loaded from the 
Ramdisk consecutively appear so 
quickly that an animation effect 
is achieved. 1 found that being 
able tao load, save, boot and re- 
load files to ramdisk continually 
instead of disk saves a lot of 
time and hassle. When I'm done, 
I dump the contents to a floppy. 


This illustrates the Ramdisk's 
intended use to speed up existing 


programs when files are loaded 
and saved frequently, as opposed 
to increasing your disk space. 


Also, a 266K ramdisk stores more 
than an ordinary single-sided, 
double-density floppy disk. 


The only problem 1 have encount- 
ered sq far is some interference 
batween the Ramdisk board and the 
‘stock' ZSIYO RS-232 card and 
modem at 1200 baud. However, 1! 
do not know if this is a problem 
with the Ramdisk, software, the 
ZS1/O, or plain power drain. (As 
it is, l have 7 devices chained 
to the back of my 2068). Other 
than that, I have found the LKDOS 
Ramdisk to be one of the most 
versatile tools yet for the 2068. 
Any serious 2068 user would do 
well to consider purchasing one. 


The LKDOS Ramdisk is available 
from Larken Electronics at RR #2, 
Navan, Ontario, Canada K4B 1H9 
and most local T/S dealers. Ram- 
chips for the Ramdisk are about 
$14.00 apiece at Jameco (415-592- 
-8097 to order). Chip sockets are 
about 50¢ each at Radio Shack. 

- Jim Rodlin 
{(Ramdisking capacity is often the 
cheapest way to increase speed, 
since the most annoying delays in 
using a computer are when access— 
ing media. For the QL, memory 
expansion plus ramdisk software 
make microdrive cartridges 
bearable. -— Ed) 


i Ce September/October 1988 


QUILL FILESAVER 


More than once, my @L has mangled 
a long Quill document through 
poor disk or microdrive lO. 
Either I removed the cartridge 
before closing a file, or the QL 
tried to write part of the file 
to a non-existent track on the 
disk or the QL crashed. The 
result is the same - any attempt 
to reload the file into Quill 
results in a File L/O Incomplete 
error, disasterous if you forgot 
to periodically backup your work. 


encounter forced me to 
at how Quill 


One such 
take a deeper look 


files are stored. 1 could do 
this with "BGET", which reads a 
Single byte from a file. Most 
disk systems and toolkits have 


this command. 


I used BGET to print out the 
humeric value of every character 
in my partially-corrupted Quill 
file to learn its structure and 
60 recover at least part of it. 


The most striking discovery was 
that Quill files use the Wull 
character ([CHR$(0)] in place of 


Carrtage Returns. I also noticed 


that a good portion of the Quill 
file 1s formatting information, 
stored towards the end of the 


file. It is mostly strange con- 
trol characters. All the text was 
present, but some formatting 
information was cut off during 
the incomplete SAVE. 


I tried renaming the file with a 


_LIS” extension and importing 
that, but Quill didn't like the 

NUL's and stopped importing the 
file at the first occurance of a 
MUL. 

So 1 had to figure out a way to 


extract the ‘text’ portion of my 
document and re-write it as 
straight ASCII. BPUT came to the 
rescue and the result is the 
listing below. In a nutshell, 
the program reads a byte from the 


damaged file in channel #5. If it 
is a null, it's changed to a 
carriage return ([CHR$(13)]; tf a 


BoaSTUG Sinclair/Timex Newsletter 


control character (less than 
SPACE [(CHRS$(Q2)) but not CR), it 


is changed to a space. Otherwise, 
it is a regular ASCII character 
and left as is. 


The now ASCII character is writ- 
ten to the new file in channel#o. 
The character is also printed to 
the screen so you can watch as it 
goes through the file. Then the 
loop repeats tor the next 


character until there are no more 
characters to read. What is left 


is a plain text file which can be 


imported into Quill. 1! was able 
to recover a 15 page document 
this way, though it took about 


ten minutes to do so. 


Hopefully you will never need to 
use this utility, but if you do, 


here it is. 
- Jim Rodlin 


10 REMark 
REMark 


"Filesaver” 
Corrupted Quill file 


30 REMark recovery utility 
40 REMark by Jim Rodlin 

50 REMark Requires Toolkit 
60 REMark commands BGET & BPUT 
80 REMark In the public domain 
90 REMark Attribution requested 
100 FLP_EXT: REMark or TK2_EXT 


enable extended command set 


110 CLS 

120 OPEN#S, “mdve_MYFILE doc” 
: REMark file to save 

130 OPEN _WEW#6, "mdvi_BBS_ lis" 
: REMark output ASCII file 

140 REPeat loop 

150 BGET#5, a%: REMark get byte 
and put in a% 

160 IF a% =O THEN LET a% =13 
REMark convert null to CR 

165 REMark replace all control 
chars with SPACE 

170 «=IF a% <2 AND a% £713 THEN 
LET a% =32 

180 REMark print character to 
screen for visual feedback 

190 IF a% =13 THEN PRINT 
: REMark Carriage Return 

200 =IF a% <713 THEN FRINT 
CHRS$ 4); 

210 BPUT#s, a%: REMark write 


ASCII byte to LIS file 
220 END REFeat loop 


- &- September/October 1988 


BCS PROGRAMMING PROJECT 


The BCS Sinclair/Timex User Group 
has launched a project ta develop 
a state-of-the-art BBS program 
for the T/S 2068 computer. We are 


looking for volunteers to parti- 
cipate in the project. A know- 
ledge of Pascal or 280 Assembly 


language would be helpful. 


We will build advanced features 
into the software, including 1200 
baud, Xmodem, and networking with 
other 2068 BBSes. The software 
will be developed under LKDOS 
V3.0. You need not live in Mass- 
achusetts to participate. 


If you are interested, phone Jim 
Rodlin at (508) 481-2155, or 
write to him at 66 Chandler St., 
Marlboro, MA 01752. By modem, he 
can be contacted on the BCS 
TIMEWARP BBS at (508) 481-0555, 
8/1/H 300 baud. 


BINGO 


There are ‘ona or two Sinclair 
computer users who play Bingo, or 
whose family does. From the 
‘HACKER’, the official newsletter 
of the Timex/Sinclair User Group 
of Las Vegas, NV, comes this gem 
for the 2068 that prints out 
BINGO cards on a 2040 printer. 


QL users may want to convert to a 
SuperBASIC program to get a bet- 
ter understanding of AT, BEEP, 

BORDER, FOR and TAB (use TO in- 
stead), which have slightly dif- 

ferent constructs. 


LPRINT, of course, is unavailable 
in SuperBASIC. Instead, insert 
line 5 : ‘OPEN#3,serl' ta open a 
channel to the printer, then use 
‘PRINT#3,’ instead of 'LPRINT’. 


This is also an easy program to 
change GO SUB routines to Super- 
BASIC procedures. 


BoSTUG Sinclair/Timex Newsletter 


OrWDNRKE 


-9 - 


REM "BINGO’ 

BORDER 1: PAPER 6: 

CLS : CLS 

GO TO 600 

FRINT AT 2,1;"Welcome to the 

Bingo Parlor’';AT 3,4;"Here ar 

@ your options:’;AT 6,4;" 1 

~ PLAY BINGO"; AT 8,4," 2 - 

PRINT OUT BINGO CARDS" ;AT 10, 

4; " 3 - MASTER CALL SHEET"; 
AT 12,4;"° 4 - STOF’; AT 20,1 
"Enter Option Number (1-4):' 
INPUT z: CLS 

GO TO 20% =1)>+90% (2=3 +700 ¢ 

Z=3)+85% (27*4) 

RANDOMIZE 

DIM y$(75) 

LET 1$="BINGO" 

BORDER 3: PAPER 7: CLS : CLS 
: PRINT AT 2,10;"Bingo Caller 

‘AT 8,6°° CALLING: “;AT 12,6 
“Press ENTER for next call"; 
AT 16,3;" NW for New Game':AT 
18,3;" Q ta Quit" 

FOR z=1 TO 75 

LET r=INT (RND*75)+1 

IF y$@)="%"" THEN GO TO 50 

PAUSE 80: PRINT AT 8,17;* '":1 
SCLIIT (/15+.95));"—"""r:: BEB 

P 2,4 

LET y$«r>=''*" 

IF INKEYS$=** THEN GO TO 70 
IF INKEYS="N" OR INKEYS$=" n" 
THEN CLS: GO TO 6 

IF INKEYS="Q" OR INKEYS=" q" 
THEN PAUSE 200: CLS: STOP 

FRINT AT 8,18;" 

NEXT z 

CLS : STOP 

PRINT AT 11,17'HOW MANY CARDS 
DO YOU WANT?"; 


INK 0 


INPUT cards: PRINT AT 11,30;c 
ards: PAUSE 80 
FOR x=1 to cards 
LFRINT ,,,, 
LPRINT " 
a. 
LPRINT ,,,, 
LFRINT : LPRINT " THE HAM 


MER HUTCH CASINO”: LPRINT : L 
PRINT " KB KI«KNW «kG 


* OQ * 
DIM y$(75) 
DIM a(S) 
GO SUB 300 


FOR g=1 TO 5 
GO SUB 400 


FOR z= 1705 
LET atZ>=INT (RND*15+ (z-1)*15 
+ 


September/October 1988 


620 
700 
70 
706 


708 


BoSTUG Sinclair/Timex Newsletter 


IF yS(a(z))="k" THEN GO TO 14 
0 
LET yS$(a(z))="%" 
NEXT z 
IF y=3 THEN LET a(3)=0 
LPRINT TAB 3;"*";TAB 53a (1);T 
AB 8;"*";TAB 10;a(@);TAB 13;" 
x's 
te y=3 THEN LPRINT TAB 14;"FR 
IF y<o3 THEN LPRINT TAB 15;a¢ 
3); 
LPRINT TAB 18;"%";TAB 20;a (4) 
STAB 23;°4";TAB 25ja(2);TAB 2 
BK; 
GO SUB 400 
GO SUB 300 
NEXT y 
FOR z=1 TO 5 
LPRIST,, 
NEXT z 
NEXT x 
CLS 
GO TO 500 
LPRINT "” 
RAKKKKKR" 
RETURN 
LPROT " * x * x 
x x" 
RETURN 
PRINT AT 4,4?'Choose your nex 
t Option:";AT 7,8;" 1 —- Mor 
e Cards";AT 9,8;" 2 - Play B 
INGO"’;AT 11,8;" 3. - Master C 
alling Sheet";AT 13,8;"° 4 - 
STOP';AT 20,1;"Enter Option N 
umber (1-4):" 
INPUT q$: PRINT AT 20,28;q$ 
IF q$="1" THEN CLS: GO TO 90 
IF q$="2" THEN PAUSE 80: CLS: 
GO TO <0 
IF q$="3" THEN CLS: GO TO 700 
IF q$="4" THEN CLS: STOP 
PRINT AT 4,8;"WELCOME TO THE” 
FLASH 1: FRINT AT 6,8;" HAMME 
R HUTCH ";AT 7,8;" CASINO 
": FLASH 0 
PRINT AT 12,0;"COME IN AND SI 
T IN ONE OF OUR COMFORTABLE 
CHAIRS IN OUR BINGO PARLOR. 


AKAARKKAKAKKAKAAKAKALE 


PRINT OUT A COUPLE OF CARDS, 
GRAB A PEN OR PENCIL, AN 
D HAVE SOME FUN." 
PAUSE 300: CLS: GO TO 6 
BORDER 0: PAPER 7: INK 0 
CLS: CLS 
PRINT AT 10,1;"Master Call Sh 
eet now printing” 
PRINT 


perro, 


710 LPRINT "Master Call Sheet" 

715 LPRINT "--------— 

720 LPRINT "B" 

722 LPRINT "1 2 3 4 5 6 7 
&" 

724 LPRINT "9 10 11 12 13 14 15" 

726 LPRINT "I" 

728 LPRINT "16 17 18 19 20 21 22 
23" 

730 LPRINT "24 25 26 27 28 29 30" 

732 LPRINT "NH 

734 LPRINT "31 32 33 34 35 36 37 
38" 

736 LFRINT "39 40 41 42 43 44 45" 

738 LPRINT "G" 

740 LPRINT "46 47 48 49 50 51 52 
53°" 

742 LPRIST "54 55 56 57 58 59 60" 

744 LPRINT "0" 

746 LPRINT "61 62 63 64 65 66 67 
68" 

748 LPRINT "69 70 71 72 73 74 75" 

750 LPRINT " 

755 LPRINT ssosns 

800 BORDER 0: PAPER 7: INK 0 

810 CLS: CLS 

820 GO TO 6 

900 SAVE "BINGO” LINE 1: BEEF .75 
,12: BEEF .47,8 

999 STOP 


BAST COAST SYEC FEST 


The Capital Area Timex Sinclair 

Croup (CATS), Washington, DC has 
announced it will sponsor a Sin- 
clair Computer Fest in May, 1989. 


Major Vendors are participating 
and it is expected to be the 
outstanding Sinclair Fest. 


A major advantage of this fest is 
its central location on the East 


Coast and will expect attendance 
from some of the nearby centers 


of T/S manta. 


The Fest will be at the Howard 
Johnsons in New Carrollton, MD, 
close by the METRO with con- 

nections to the entire DC area. 


The BCS will sponsor a table and 
arrange for group transport and 

accomdations. Watch this space 

for further details. 


- 10 — September/October 1988 


ABOUT TOOLKIT II 


Are there any QL owners who if 
they don't have TK2, have nat 
been strongly advised to get it? 


Anyone who has keystroked COPY 
mdv2_fred to mdvi_fred a zillion 
times to backup media finds WCOPY 
worth the price alone. 


Certainly, the Toolkit II manual 
is a forbidding document. There 
is no tutorial; just a list of 
keyword extensions with limited 
and sometimes incomplete direc- 
tions on their use. 


There is not even a clue as to 
where to get your feet wet, so a 
sampling of easy and immediately 
useful keywords is offered here. 


Toolkit II extensions that are 
easy and that you will enjoy are: 
ALARM, CLOCK, DLIST, EX, EXTRAS, 
EV, FREE MEM, RENAME, SPL, SPLF, 
STAT, TK2_ EXT, VIEW, WCOPY, WDIR, 
WMON, WRENN, WTV, and VSTAT. 


All can be explored from direct 
mode and you can't get in Gnuch) 
trouble (‘except for difficulty 
understanding the manual). 


But a lot of people are missing 
out on three excellent features 
incorporated in Toolkit I1: ED, 


ALTKEY and last line recall. 


Last line recall <ALT><ENTER> is 
usually useful in direct mode in 
SuperBASIC. It recalls all char- 
acters since the last ENTER. Done 
several times in sequence, it 
recalls several lines at a time. 
Once recalled, lines can be edit- 
ed or reexecuted. It also works 
from Psion programs, as a quick 
and dirty copy, up to Psion's 22 
character buffer limit. 


ALTKEY is worth exploring. It is 
buried in the back of the manual 
in Section 21 and little is said 
about it. Essentially it permits 
writing macros. The syntax is 
ALTKEY '‘x’,’...." whera x is any 

one of the QL's character set. 
In the example, x is lower case. 


BoSTUG Sinclair/Timex Newsletter 


Everything after ‘x’, and within 

the quotes happens when the com- 
bination <ALT><x» is pressed. If 

<ENTER> is desired for executing, 

the ALTKEY definition can end 
with ,*° «comma and two single 
quotes), which is <ENTER>. 


How to use ALTKEY is not concep- 
tually easy. One use is ALTKEY 
2°, CHRS(240)&'lflpl_setup'’,’’. 
This line is incorporated in my 
Quill boot. The same disk also 
has the file ‘setup_doc’ on it. 


Satup_doc is my style sheet for 
correspondence. It has my return 
address, the date and salutation 
position and no footer. I don't 

reorganize Quill's default page 

each time 1 write a letter; I! 

press <ALT><)1>. 


Programmers assign ALTKEYs to oft 
used keywords (without an ENTER?) 
to emulate single-stroke keywords 
popular in earlier Sinclair's. A 
boot with a batch of user defined 
ALTKEYs anda final line NEW is 
run at the start of programming. 
NEW clears SuperBASIC memory (but 
not the ALTKEY definitions.) 


Finally, there is ED that invokes 
a full screen SuperBASIC editor. 
The cursor keys move the cursor 
over the full screen. They can be 
combined with ALT and SHIFT for 
special effects. It is easter ta 
edit existing programs with Over- 


writing (SHIFT F4, as in Quill). 


SuperBASIC programs often have a 
number of duplicate or near dup- 
licate lines. Editing a line 

number replicates the line ata 
new position and retains the old 
line. If slight modification is 

required, overwriting speeds any 
needed changes. 

line 


For fun, slip in ED as a 


‘anywhere in a SuperBASIC progran. 


Run it. Predictably, when the 
program reaches ED, it halts and 
goes into full screen edit made. 


Now press <ESC>. What happens? 


-Peter Hale 


anaes ©: September/October 1988 


COLUNEIFY ING QUILL 
by Mike Padlipsky & Peter Hale 


The trouble with having been a 
working programmer in one’s youth 
is that you spend the rest of 
your life under the constant 
threat of getting readdicted to 
that particular form of obeessive— 
compulsive behavior. 


(The trouble with being an ex- 
programmer who's also a Published 
Author, by the way, is that you 
feel obligated to spend much more 
time describing programs than 
writing them. This can boggle a 
newsletter, unfortunately. Sq be- 

tween my rewriting and his con- 
pressing, what you're seeing is 

about 60% of what your Editor 
originally got. [In case anybody 

cares, The Book is The Hlements 
of Networking Style, Prentice- 

Hall, 1985.) >) 


So when, for obscure reasons we 
needn't bother with here, I deci- 

ded the other week that I needed 
to be able to print a Quill docu- 
ment in Double Strike Condensed 
mode, in columns, | knew I had a 
probilen. That meant I'd have to 
write a program todo it. And 
that meant I'd have to run the 
risk of getting rehooked, just as 
l had for several months last 
year, shortly after acquiring my 
QL. As a matter of self-protec- 
tion, then, I consciously did the 

program in the simplest, laziest 
way | could think of, so as to 
re-expose myself for only an hour 
or two, and sat back to enjoy it. 


There's even trouble with sitting 
back and enjoying your columnify- 
ing program, though. Part of the 
enjoyment was bragging how nifty 
it was to Peter Hale, who'd been 
helpful itn the planning stages 
and who'd expressed a desire for 
such a program to produce this 
very newsletter. Zap. Temptation 

again. He wanted it to be more 
“user friendly"; suggested all 

sorts of embellishments, indeed. 


Having already produced my 
BoSTUG Sinclair/Timex Wewsletter 


‘Sweetened Condensed" columnized 
document (it's lovely, thanks), I 


managed to hold firm, though, and 
convinced him-—in part by promis-— 
ing to do the writeup myself: 
more trouble--to do his own 
version of the thing. So what 
follows 1s actually a collabora- 
tive effort. Peter assures me I'm 

entitled to take credit for the 
semi-elegant SuperBASIC gimmick, 
so I will; but anything you don't 

like about the user interface, 

blame on hin. 


All 1 ever wanted was to run a 65 
character wide Quill document off 
into a file named colify_lis, 
having forced it to have an even 
number of whole pages by blanking 
enough lines at the bottom to 
come out right, make it print out 
in columns, and just run off the 
end because 1 remembered from the 
Lost Months of a year ago that 
there was something funny about 
end-of-file detection with Quill. 


USAGE 


The first thing to do its to make 
a Quill document with an approp- 
riately narrow line. The table 
at the end of the article gives 
maximum line lengths for antici- 
pated type faces. In my short 
version (here for those who don't 
want all the typing for Peter's 
version) choose a non-O margin. 
Its width will also be the width 
of the column separator. 


How to end the file is important 
in Feter's version. The last 

line has to consist of only a 
<CTRL-SHIFT-K> and _ an Enter. This 

makes life easier than coping 
with the imponderables of how 
Quill ends lis files. For my 
version just pad the Quill file 

out with one or two Page Breaks, 
to end up with an even number of 
pages when you're done. Close 
the channels by hand when it runs 
off the end of the file. 


Now run the Quill document off 


to a _lis file. I.E. type colify 
over the “printer” prompt as the 


last step of the Frint command; 
- 12 - September/October 1988 


dd 


you don't even need to specify 
the _lis part, it's furnished by 
the Quill program automagically. 
(The version Peter will stick in 
lets you select any file name 
allowed by Quill.) 


The next trick is toa invoke the 
columnifier program by irunning 
whatever name you saved it under. 
My version just gives two columns 
of Sweetened Condensed, provided 
the Quill document is no more 
than 66 columns wide. Fire up 
Peter's and it'll start asking 

you about various things like 
linewidth, typeface and soa on. It 

will even let you alter the left 

margin and respecify the width of 
the column separator. 


Moet of the usage is as nearly 
self-explanatory as these things 
ever are. If things really seen 
fouled up, be of good cheer: you 
can always get out by hitting 
<CTRLO<SPACE>, since it is, after 
all, a SuperBASIC progran. 


The one obscure point, in my hum- 
ble but dogmatic opinion, is this 
business of “text frame’. (That's 
the measured width of two columns 
of text, includin the column 
separator, for a chosen type face 
without regard for left margin 
adjustments. The ‘out of range’ 
prompt takes into account margin 
adjustments.) 


Not everyone will use the maximum 
width for a given type face. To 
avoid a cramped look, it may be 
necessary to widen the column 
separator. If the output is toa 
be reduced, a full 8 inches of 
text frame may be excessive. 


There are doubtless a number of 
fine points I'm overlooking here, 

but with any luck at all, that's 

all you need to know about colun- 
nifying prior to using the pro- 
gram —- except for the Limitations 
mentioned below, anyway. If it 
isn't, the REMarks in the program 
listing might well help even if 
you're not a4 programmer and would 
otherwise be totally disinclined 
to look at then. 


BoSTUG Stinclair/Timex Newsletter 


Another point about my lazyman's 
version might be in order: if you 
decide to use it rather than the 
full version and want to adapt it 
for other than Condensed, Peter's 

code should help in deciphering 
what you have to send ta the 
printer. The thing to be wary of 
is that you must diddle the type- 
face before you fiddle the tab 
Satting. (It might seem obvious, 

but overlooking it doubled the 
time I spent writing the code.) 


Oops. One more featura: Peter's 
version has the option to run the 
output into a file (which will 
have same "first name" as your 
lis file, with the suffix —_col) 
if you want to copy a number of 
_coOl files to seri all at once. 


LIMITATIONS 


st and foremost: if the 
Preamble in your printer driver 
does a reset (i.e., has ESC,@), 
get rid of it!!! It took me hours 
of headscratching and a couple of 
lengthy conversations with Peter 
to figure out why the full-up pro- 
gram didn't let my machine make a 
draft of this very article. Sigh. 


The lack of page numbering is 
noted and won't be apologized 
for; my psychic well being ts at 
stake here. (Perhaps Peter will 
be shamed into doing it himself; 
check for notes after the list- 
ings.) (Why wait? You know that 
Editors have no shame! -Ed) 


The main thing to realize is that 
this is a fairly dumb little 
program at heart. All it does is 


read 66 lines out of a _lis file, 
change the CRs at the end of each 


line to Tabs, then read the next 
66 lines and concatenate them 
with the first 66 ‘one at a time, 
of course) before doing a Super- 
BASIC PRINT statement with them 
to the printer. 


So if you're doing a lot of boald- 
facing or underlining in = your 
document, be aware that if you 
don't turn them off at the end of 
Rach line, they'll slop over into 


- 13 - September/October 1988 


either the righthand column or 
the next lefthand line when 
printing. Similar considerations 


apply to meta-Quill fancies, like 
selective italicizing by having 
appropriate Translate entries in 
your printer driver. 


Sorry about that, but 
would have become 
hairy to have the program keep 
track of that sort of thing for 
you. If you don't have a feel 

for the problem being described, 
don’t worry; if and when you get 
funny looking output, it'll be 

clear how to deal with it whether 
or not the semi-explanation made 
sense just now. 


it really 
unacceptably 


There are also some limitations 
in the printers you're likely to 
hook up to a QL, like the bizarre 
fact that Boldface temporarily 
disables Condensed, or the subtle 
point that if you do run the 
output into a file you can't 
reimport the file into Quill for 


further fiddling in columnized 
form because one of the printer 
control codes ends in <HUL>, 


which makes Quill stop importing. 
But I won't try to remember any 
others than those two since there 
isn't anything we can do about 
them and I've probably gone on 
too long anyway. 


THE LISTINGS 
in all its 


Here comes mine, 
minimalist glory: 


110 DIM lcols (66,80) 
120 DIM rcols (66,80) 
130 OPEN_IN #3,’flp2_colify_1lis' 
140 OPEN #4,'ser1’ 
150 PRINT #4,CHRS (27);'@'; 
CHRS$ (27);'G';CHRS$ (15); 
CHRS (27);'D’;’B' ;CHRS (0); 
160 FOR it=1 TO 66 
170 INPUT #3, 1co01$(1) 
175 j=CHR$(13) INSTR 1col1$(1) 
180 3 =1c01$(1,j9=CHRS (9) 
190 END FOR 1 
200 FOR i=1 TO 66: INPUT #3, 
reol$s (i) 
210 FOR t=1 TO 66: PRINT #4, 
lceol$ (1) & rcols(t) 
220 GO TO 160 


If the 'B' in Line 150 puzzles 
you, it's just the lazyman's way 
of spelling chr$(66). And for any 
programmers watching, | do have 
Dykstra's permission for 220. 


More than enough of this 
ishness. Over to Feter: 


fool- 


There really isn't much to add to 
Mike's prose. The three pages of 
listings are tedious to type in. 
If you do, save it as Bi_col_bas 
by starting with line 2000, a wee 
procedure to help you save the 
program by just typing s <ENTER>. 


To get the listing and somewhat 
different instructions from those 
above, send a microcartridge and 
$3.00 handling to the Sinclair 
group at the BCS. 


Remember: No header and no footer 
in the Quill document and =~»9no 
Reset in the printer _dat Preamble 
for when you create the lis 
file. Terminate any enhancement 
where the line ends and reset it 
where the line begins below. 


In the long version set the left 
margin to zero; Bi_col_bas lets 
you adjust margins and column 
separator widths later. And don’t 


forget how many columns you set 
the right margin for. Let the 
last two characters in the name 


of the lig file be the number as 
a memory aid. 

Here are the maximum number of 
columns per line: 


Maximum 
Type face characters/ line 
Double-wide 18 
Standard (Pica) 38 
Blite 46 
Condensed 66 
If you anticipate proportional 
typeface, the limits can be 
increased by a factor of 1.1. 
There's nothing in Bi_col_bas 
that shouldn't be feasible in 


another BASIC to Bi-columnify any 
ASCIlI-fied document and it should 
be most elegant on a T/S 2068. 


BoSTUG Sinclair/Timex Newsletter - 14 - September/October 1986 


1 REMark BI-COLUMMIFIER 

2 REMark Prints a _lis file 

3 REMark aS two columns to 4 page 

5 REMark by Mike Padlipsky 
ei ? REMark & Peter Hale 

8&8 REMark Sinclair/Timex User Group 

9 REMark Boston Computer Society 

10 REMark One Center Plaza 

11 REMark Boston, MA 02108 

13 REMark Attribution requested 

14: 


15 REMark Progam assumes Epeon compatible printer codes 
16 REMark See line 1500 & ff far codes needing changes 


100 init: open _file: char_col_line: CHAR_wid: CHAR 2: verify 
110 print_file: PRINT_col 

1cO CSIZE 3,0: AT 20,5: INK 0: PRINT "; FINIS ? 

130 BEEP 0,50: PAUSE (150): BEEP: STOP 


150 DEFine PROCedure gky 
160 anS=INKEY$(-1): an=CODE(an$): PRINTIan$s 


170 END DEFine gky , 


200 DEFine PROCedure init 
210 WINDOW 512,256,0,0: INK 6: PAPER 2: CLS: CSIZE 3,1 
220 WINDOW 312,220,15,0: BORDER 2,6: CLS: AT 4,2 
230 FRINT “BI-COLUMNIFIER": CSIZE 1,0 
240 PRINT" by Mike Padlipsky & Peter Hale" 
250 PRINT\N\,"Press <SPACE> to run": PAUSE: CLS 
260 k=0: mar=0: tb=4: r=1: n$=CHRS(0): p$=n$: t$=n$: wS=n$ 
270 4c_i=5: typ$="Standard ": nlq$="Draft": spcS=typs 
280 END DEFine init 


300 DEFine PROCedure char _col_ line 

310 PRINT\" Enter number of characters per" 

320 INPUT “ line in original text:"!c_c_1$ :c_c_l*c_c_1$ 
330 IF c_c_1>66 

340 PRINT\"” “tco_c_l1!"characters too wide to" 

350 PRINT " bi-columize the document." 

360 PRINT " 66 is maximum for condensed type.” 

370 PRINT\" Re-do your document.": STOP 


380 END IF 
390 END DEFine char_col_line 
400 : 


500 DEFine PROCedure CHAR wid 
510 PRINT\” Select character width": PRINT 
520 IF c_c_1<19 THEN PRINT,'<D> ouble wide" 
530 IF c_c_1<39 THEN PRINT,"<S> tandard (Pica»’ 
540 IF c_c_1<47 THEN PRINT,'<E> lite” 
550 IF c_c_1<67 THEN PRINT,”"<C> ondensed"” 
560 PRINT\" Enter choice (d/s/e/cy';: gky 
570 SELect ON an 
580 =68,100: wS=CHRS$ (27)&'W"&CHR$ (1): wid$="Double Wide" 
590 =80,112,83,115: wid$="Pica": c_i=10 
2 600 =69,101: wS=CHR$ (270&"'M": wid$="Elite’: c_1=12 
610 =67,99: wS=CHR$ (15): wid$="Condensed": c_1=17 
620 =REMAINDER : CLS: RUN 
630 END SELect 
640 END DEFine CHAR wid 
650 : 


BOSTUG Sinclair/Timex Mewsletter - 15 - September/October 198& 


ni eS 5 De em 5 


700 DEFine PROCedure CHAR 2 

710 PRINT\” Italic character type? (y/n)";: gky 

720 IF ans=="y" THEN t$=CHRS$ (27)&"4": typ$="Italic" 

730 IF c_i<il2 

740 PRINT\" Proportional spacing? ‘(y/n>;: 

750 IF an$=="y" pe pa ey Bry 

760 pS=CHRSE (27&"'p"SCHRS$ (1): spcs="Propor') ": r=1.1 

770 END IF : END IF 

780 spce$=spcef$s(c_i*m&" char/inch" 

790 PRIBT\" W.L.Q. Printing mode? (y/n>";: gky 

800 IF an$=="y" THEN 

810 REMark c_i<i2 if your Epson can't do NLQ in elite 
820 IF c_1<17 

830 n$=CHRS (27 &''x"*&CHRS$ (1): nlq$="Near Letter Quality” 
840 ELSE 

850 n$=CHR$ (27 &''G"*: nlq$=""Double Strike" 

860 END IF : END IF : CLS 

870 c_l=c_c_lvr: tab=INT(tb&rt+c_1): d_f=I1NT (10% (tabt+tc_1)/c_1+.5) 
880 END DEFine CHAR_2 

890 : 

900 DEFine PROCedure verify 

910 PRINT,” DOCUMENT FORMAT” 

920 PRINT" Char fount’ ,typs 

930 PRINT * Char size’’,wid$ 

940 PRINT " Spacing” spcS 

950 PRINT " Text frame",d_ f/10f'inches” 

960 PRINT " Printing mode",nlq$ 

970 PRINT N" Left Char/ Column Rel tab Text" 

980 PRINT “ Margin line Sep'tr position frame” 

990 PRISTN" -- to 
1000 PRIHT\TO 7;'’Press cursors to adjust'\TO 11;'<EHTER> to set" 
1010 REPeat loop 

1030 AT 10,4: PRINT mar,!ic_c_1l,!tb,!itabiiid £/10;" 

1040 PAUSE: an=KEYROW (1) 

1050 SELect ON an 

1060 =e: mar=mar-1 

1070 =16: mar=mar+i 

1080 z4:; tb=tb+1 

1090 £128: tb=tb-1 

1100 =1: EXIT loop 

1110 =REMAINDER 

1120 END SELect 

1130 tab=INT (tbtrt+c_1)): d_f=INT (10% (tabtc_1)/c_1+.5) 

1140 AT 12,6: PRINT PILLSC’ "',25) 

1150 IF mar<O OR (mar*10/c_i+d_f)/1008 OR tb<o 

1160 AT 12,6: INK 0: PAPER 6 

1170 PRINT * Out of range; try again ": INK 6: PAPER 2 
1180 END IF 

1190 END REPeat loop 

1200 AT 16,7: PRINT “Is this correct? (y/n)";: gky 

1210 IF an$=="y" THEN RETurn verify 

1220 PRINT " Then you must rework your Quill dac” 
1230 PRINT\" Exit to rework Quill doc? (y/n»;: gky 
1240 «IF an$=="y'' THEN CLS: STOP 

1250 PRINT * Try another document format? (y/n?;: gky: CLS 
1260 IF an$=="y" THEN GO TO 100: ELSE : STOP 

1270 END DEFine verify 


1300 DEFine PROCedure open_file 
1310 OPEN #5,con: VINDOW #5,120,256,330,0: BORDER #5,2,4 


BoSTUG Sinclair/Timex Newsletter - 16 - September/October 1988 


1320 
1330 
1340 
1350 
1360 
1370 
1380 
1390 
1400 
1410 
1420 
1430 
1440 
1450 
1500 
1510 
1520 
1530 
1540 
1550 
1560 
1570 
1580 
1590 
1600 
1610 
1620 
1630 
1640 
1650 
1660 
1670 
1680 
1690 
1700 
1710 
1720 
1730 
1740 
1750 
1760 
1770 
1780 
1790 
1800 
1810 
1820 
1830 
1900 
1910 
1920 
1930 
1940 
1950 
1960 


1970: 


2000 
2010 


2020 


INK #5,6: PAPER #5,0: CLS #5 

INFUT #5,\" Document on''\." DRIVE?" tavs 

IF LEN (dv$)=1 THEN dv$="flp"&dvs 

REMark Number of fields = 66 lines/page 

REMark Field length = 99 columns 

DIM 1co01$ (66,99): DIM rcol$s<66,99) 

IF av$(LEN (dv$))<>"_" THEN dv$=dv$&a"_" 

DIR #5,dv$&" lis’: INPUT #5,\"" Select Lis’\\" FILE:"!files 
REMark Line 1390 uses Toolkit II DIR ability display only files 
REMark that end in " lis”. You may have to edit out & lis” 
IF NOT "_" INSTR fileS THEN file$=file$&' lis" 

LET temp$=dvS&file$(1 TO ¢« "_" INSTR file$)a&''col" 
END DEFine open file 
DEFine PROCedure PRINT col 

REMark Printer control codes are for Epson printer 

REMark You may have to change for other printers 

PRINT #4,CHRS$ (27)&'@’;: REMark printer reset 

IF n$<>CHRS(O) THEN PRINT #4,n$;:; REMark See Lines 830/850 

IF p$<>CHRS$(O) THEN PRINT #4,p8;: REMark See Line 760 

IF t$<>CHRS(O) THEN PRINT #4,t8$;: REMark See Line 720 

IF w$<>CHR$(O) THEN PRINT #4,w$;: REMark See Lines 580 to 610 
REMark Following line sets left margin, then horizontal tab 
REMark "IF an$<>'f™ and 1610 to reimport file to Quill 

PRINT #4,CHR$ (27 )&'1"&CHRS (mar )&CHRS (27 )&"'D"'&CHES (tab &CHRS$ (0); 
REMark END IF 

REPeat col PRINT 

FOR 1=1 TO 66 

INPUT #3,1c01$ (1) 
J=CHRS$ (13) INSTR 1col$(1) 


1col$ (1,j2=CHRS (9) 

REMark (G=CTRL SHIFT K 

IF "2 INSTR 1lcol$ (i>? THEN ki: EXIT 1 
END FOR 1 

IP k: FOR 1=k TO 66: 1lcol$(1)=CHRS$ (9) 
IF WOT k 


FOR 1=1 TO 66 
INPUT #3,rcol$(1i> 
IF “ INSTR rcol$ (i) THEN k=1: EXIT 1 
END FOR 1 
END IF 
IF k: FOR i=k TO 66: rcol$(1)=CHR$ (13) 
FOR 1=1 TO 66: PRINT #4,1c01$8(1);rcol$ (1) 
IF k THEN EXIT col PRINT 
END REPeat col PRINT 
CLOSE #3: PRINT #4,CHRS(270&"@";: CLOSE #4: CLOSE #5 
END DEFine PRINT_col 


DEFine PROCedure print_file 

PRINT\"” Print to Paper or File (p/f)';: gky 

IF an$=="p" THEN OPEN #4,serl: ELSE an$="f" 

OPEN_IN #3,dv$&file$: PRINT #5,\dv$afile$\"" will be printed” 


IF an$='f' THEN PRINT #5," as:"!temp$: OPEN NEW #4,temps 
PRINT #5,\\" PATIENCE!" - 


END DEFine print file 


DEFine FROCedure s 
DELETE flp2_Bi_col_bas: SAVE flp2_Bi_col_bas 
END PROCedure s 


BoSTUG Sinclair/Timax Newsletter - 17 - September/October 1988 


behind machine code thinking, the 
reader dives right into machine 
lanuage programming with a look 
at the CPU and how it works. The 
Z-80 assembly instruction set is 
axamined in detail, with examples 

demonstrating their use. Later, 

the author touches on advanced 
soncepts like bank switching, the 

floating point processor, the 

function dispatcher, and how 
peripherals (such as printers, 

aisk drives, and modems) work. 
Six appendices provide helpful 
tables and information for. the 
reader. 


One complaint I have is with a 
PRINT routine in appendix B that 
had bugs in it. The author uses 
the progran to teach basic 
techniques to his machine code 
classes at SMUG, so a detailed 
explanation of the program and 
what's going on is not included. 

I suspect that the bugs are 
deliberate and meant for his 
students to correct. However, 

there is no mention of this in 
the manual. It can be irritating 

for the beginning reader ta be 
faced with a buggy program with 
no hints as to how to correct it, 
especially when he doesn't expect 

any bugs in the first place. 


Book two, Advanced 2068 Machine 

Code Volume 1, covers graphics 

and advanced screen programming. 
If you want to write that 
ultimate "Paint’ program, or you 

are interested in the 2068's 

advanced video modes, this book 
is what you are looking for. It 

begins with a few notes about 
assemblers and compilers for the 
2068. The second chapter starts 

you out with a few simple 
routines that should be in every 
programmer's toolbox (screen 
clear, locate screen address, 

etc). Chapter three includes an 

article (originally from the SMUG 

Bytes newsletter) about bank 
switching BASIC programs with the 
Aerco disk drive's expanded 
memory banks. The author expands 
upon it with a discussion about 
using advanced screen modes while 
bank switching. 


BoSTUG Sinclair/Timex Newsletter 


The next three chapters are 
devoted to the TS 2068's advanced 
video modes: 64 and 80 ‘yes 80) 
column screens, dual screen mode, 
and high resolution graphics 
mode. The author provides many 
examples and a generous amount 
of source code, including com- 
plete, debugged versions of th3 
advanced video mode routines from 
the T/S 2068 Technical Manual. 


The remainder of the book is 
about game programs and the ideas 
behind them. ‘Sprites' are ex- 

amined and a super sprite driver 
is developed that puts the Tech 
Manual routines to shame. It cul- 

minates ina shoot-em-up arcade 
game that involves some complica~ 
ted timing, interrupts, and even 

drawing on the border. Finally, 

the book examines fractals and 
how to develop the scene portion 
of graphical adventure games. 


For those who aspire to become 
crack 2-80 assenbly language 


. wizards on the 2068, these two 


books are a must. If you area 
beginning machine language pro- 
grammer, you will not find a more 
informative and well-thought out 
tutorial anywhere. 


Dr. Dreger is currently working 
on Advanced 2068 Machine Code 
Volume 2, which will cover BEEP, 
sound, and music on the 2068, and 
a closer look at the T/S 2068 ROM 
routines, to be released in 1989. 


A companion toa these books, The 
imex/Sinclair 2068 ROM Manu- 
script, also by Dr. Dreger, ig a 

disassembly of the 2068 ROM with 
comments and cross-references to 
the Sinclair Spectrum ROM. It 1s 
a valuable reference for assembly 
language programmers of all 
leagues. 


The books are distributed by 
S.M.U.G., the Sinclair Milwaukee 
Users Group, at Box 101, Butler, 
wl 53007. They are also carried 
by most Timex/Sinclair dealers. 
Order yours today. 

~- Jim Rodlin 


- 18 - September/October 1988